﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Dao.Intermediarios;
using Dao;
using _InformaticaIndustrial_DerivdosVinicos.DTO;

namespace _InformaticaIndustrial_DerivdosVinicos.Interfaz
{
    public partial class Ver : Form
    {
        IPProducto ipProducto = new IPProducto();
        EstructuraProducto _estructura;
        private IPEstructuraProducto ipEstruct = new IPEstructuraProducto();

        public Ver()
        {
            InitializeComponent();
            dataGridViewFormula.Enabled = true;
            LoadComboProducto();
        }

        public void LoadComboProducto()
        {
            comboBoxProducto.DataSource = ipProducto.getAll<Producto>();
            comboBoxProducto.DisplayMember = "NombreProducto";
            comboBoxProducto.ValueMember = "IdProducto";
        }

        private void comboBoxProducto_SelectedIndexChanged(object sender, EventArgs e)
        {
            dataGridViewFormula.Enabled = true;
            dataGridViewFormula.DataSource = ipEstruct.getByCriterio<EstructuraProducto>("","",comboBoxProducto.SelectedIndex.ToString());
        }

        private void dataGridViewFormula_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            switch (e.ColumnIndex)
            {
                case 4:
                    modificarEstructura(e.RowIndex);
                    break;
                case 5:
                    eliminarEstructura(e.RowIndex);
                    break;
                default:
                    break;
            }
        }

        private void modificarEstructura(int i)
        {
            _estructura = (EstructuraProducto)(dataGridViewFormula.Rows[i].DataBoundItem);
            Intermediario.confirmarCambios();
            MessageBox.Show("Estructura de Producto Modificada");
            BuscarCT();
        }

        private void eliminarEstructura(int p)
        {
            try
            {
                ipEstruct.Delete(Convert.ToInt16(dataGridViewFormula.Rows[p].Cells[1].Value));
                MessageBox.Show("Estructura de Producto Eliminada");
                BuscarCT();
            }
            catch (Exception)
            {
                throw;
            }
        }

        private void BuscarCT()
        {
            try
            {
                    dataGridViewFormula.DataSource = ipEstruct.getAll<EstructuraProducto>();
            }
            catch (Exception)
            {
                throw;
            }
        }

    }
}
